//
//  HJChatGroupManagerProtocol.h
//  KaiChat
//
//  Created by lx on 2023/10/23.
//

#import <Foundation/Foundation.h>

@class HJChatGroupModel, HJGroupMemberModel;

NS_ASSUME_NONNULL_BEGIN

@protocol HJChatGroupManagerProtocol <NSObject>

- (void)queryGroupInfoByGroupId:(NSString *)groupId completion:(void (^)(HJChatGroupModel * _Nullable groupModel))completion;
- (HJChatGroupModel *)queryGroupInfoByGroupId:(NSString *)groupId;
- (void)createGroupByGroupIdWithUserIds:(NSArray *)userIds completion:(void (^)(HJChatGroupModel * _Nullable groupModel))completion;
- (void)loadGroupListWithCompletion:(void (^)(NSArray <NSArray <HJChatGroupModel *>*>* _Nullable datas))completion;
- (void)openGroupInviteVerifyWithGroupId:(NSString *)groupId open:(BOOL)open completion:(void (^)(NSError * _Nullable error))completion;
- (void)exitGroupWithGroupId:(NSString *)groupId  completion:(void (^)(NSError * _Nullable error))completion;
- (void)disbandGroupWithGroupId:(NSString *)groupId  completion:(void (^)(NSError * _Nullable error))completion;
- (void)loadGroupInfoByGroupId:(NSString *)groupId completion:(void (^)(HJChatGroupModel * _Nullable groupModel))completion;

- (void)loadGroupMemberListWithGroupId:(NSString *)groupId completion:(void (^)(NSArray <HJGroupMemberModel *>* _Nullable datas))completion;
- (void)queryGroupMemberListWithGroupId:(NSString *)groupId completion:(void (^)(NSArray <HJGroupMemberModel *>* _Nullable datas))completion;
- (NSArray *)queryGroupMemberListWithGroupId:(NSString *)groupId;

@end

NS_ASSUME_NONNULL_END
